home *** CD-ROM | disk | FTP | other *** search
- bbs> Msg# 43142 To: ATARI @DL From: DD9ZK Date: 11Feb90/0232
- Subject: DOVE-Telem. im GEM-Fenster
- Bulletin ID: 112001DB0GV
- Path: DB0IE!DB0GV
- de DD9ZK @ DB0GV
-
- Hallo Atarianer!
- Hier ist mein Beitrag zum Thema Dove-Telemetrie-Decoder.
-
- Fenstertechnik: Die 59 Zeilen Telemetrie auf dem Bildschirm zu bringen, wo
- dieser doch nur 25 schafft, ist ja eigentlich kein Problem, selbst wenn man
- auch hochscrollen möchte ("cursor up and insert" des VT52-Emulators).
- Doch verzichtet man bei den schnellen Lösungen auf die graphische Benutzer-
- oberfläche wie man sie vom Desktop her kennt. Weil ich das nicht gut fand,
- schrieb ich innerhalb von 3 Tagen dieses Programm. Es war das erste Mal, daβ
- ich mit GEM-Programmierung zu tun hatte. Ich ging dabei absichtlich den
- "Fuβweg", damit man die Programmierung jederzeit in eine andere Hochsprache
- übernehmen kann. Spezielle GFA-Befehle wie "openw", der u.a. das beschreiben
- des Fensterarbeitsbereichs mit dem gewöhnlichen "Print" ermöglicht, fehlen
- also. Einzige Ausnahme ist der "Text"-Befehl, und das nur weil die Stringkon-
- vertierung für VDI8 so wegfallen konnte.
-
- Referenzwerte: In den Datas sind neben den Umrechnungskoeffizienten und den
- Strings auch Referenzwerte enthalten. Es soll durch den Vergleich mit den
- gelesenen Werten auf Abweichungen aufmerksam gemacht werden. Dies passiert
- in diesem Programm -wenig effektvoll- durch die zusätzliche Ausgabe des
- umgerechneten Referenzwertes. Hier könnte man natürlich spezielle Eigen-
- schaften des Druckers ausnutzen oder aber auch auf dem Bildschirm augen-
- merkliche Dinge passieren lassen.
-
- Telemetrieblock-Format: Ein Musterblock ist im Anschluβ zu finden. Es handelt
- sich um den Block, dessen Werte sich jetzt in den Datas als Referenz befinden.
- Grundsätzlich gilt: Das Format ist unkritisch (s.a. Listing, Suchschleife).
- Wer jedoch einen Block wie den unteren Auswerten läβt (597 Bytes), erhält
- als Bonbon in der Titelzeile noch zusätzlich Datum und Uhrzeit des Blockes.
- Einziges Muβ: Die ersten vier Zeichen sind "DOVE".
-
- Einschränkungen: Das Programm läuft nur mit hoher Auflösung. Auβerdem ist
- es gut möglich, daβ es sich nicht mit Accessories verträgt. Wenn dem so ist,
- und jemand trotzdem nicht vom "Zubehör" lassen kann, hi, sollte sich dieser
- Mangel auch relativ leicht beseitigen lassen. Man müsste dann mindestens auf
- Fensternummern prüfen...
-
- Sonst noch was? Das Programm ist in GFA 2.0 auf dem Atari 1040 STF mit TOS1.4
- entstanden. Compillation tut gut, bringt aber kaum Geschwindigkeitsvorteile.
- Ich würde mich sehr über Verbesserungsvorschläge freuen und biete mich als
- Koordinator an. Das heiβt, bei genügender Resonanz gibts möglicherweise ein
- Update bzw. eine neue Version.
-
- Nun viel Spaβ und vy 73 wünscht Karl Heinz, DD9ZK @ DB0GV !
-
-
- DOVE-1>TLM>UI:00:59 01:58 02:86 03:32 04:57 05:58 06:6E 07:40 08:6C 09:62 0A:A2
- 0B:DC 0C:E7 0D:D7 0E:00 0F:24 10:CC 11:A4 12:00 13:01 14:AE 15:9C
- 16:99 17:93 18:94 19:94 1A:92 1B:8B 1C:9A 1D:96 1E:24 1F:5E 20:BD
- DOVE-1>TLM>UI:21:9A 22:76 23:1F 24:1F 25:2E 26:00 27:00 28:01 29:00 2A:00 2B:00
- 2C:00 2D:2A 2E:00 2F:9C 30:C9 31:9C 32:11 33:C7 34:C2 35:96 36:A5
- 37:A3 38:B8 39:99 3A:01
- DOVE-1>STATUS>UI: 00 00 00 83 B0 18 CC 02 00 B0 00 00 B0 00 00 00 00 00 00 00
- DOVE-1>WASH>UI:wash addr:0cc0:0000, edac=0x82
- DOVE-1>TIME-1>UI:PHT: uptime is 040/07:08:16. Time is Tue Jan 23 21:37:10 1990
-
-
- REM PROGRAMM DOVDEGEM.LST
- Deffn P(X)=Q*X*X+L*X+A
- Deftext 1,0,0,13
- Dim Pu$(&H3A)
- Gc%=Gcontrl
- Gi%=Gintin
- Vc%=Contrl
- Vi%=Intin
- Pv%=Ptsin
- M$=Space$(16) ! Messagebuffer
- Fdb$=Space$(20)
- Rem Hier wird der FormDefinitionBlock angelegt
- Fdb%=Varptr(Fdb$)
- Lpoke Fdb%,Xbios(2)
- Dpoke Fdb%+8,40
- Dpoke Fdb%+10,0
- Dpoke Fdb%+12,1
- Print "Bitte auszuwertenden Telemetrieblock anwählen"
- Fileselect "\*.BLK","",N$
- If N$=""
- End
- Endif
- Cls
- Open "I",#1,N$
- If Input$(4,#1)<>"DOVE"
- Alert 1,"Unkorrekte Satellitenkennung",1,"Stop",A%
- End
- Endif
- For A%=0 To &H3A
- If A%<16
- A$="0"+Hex$(A%)
- Else ! Suchstring zusammenbasteln
- A$=Hex$(A%)
- Endif
- H%=Asc(A$)
- G%=Asc(Right$(A$))
- Repeat
- Repeat
- Until Inp(#1)=H%
- Until Inp(#1)=G% ! Zeichenkette gefunden
- Exit If Inp(#1)<>58 ! nächstes Zeichen : ?
- P$=Input$(2,#1)
- D%=Val("&"+P$) ! Dann Hexwert holen
- Read R%,B$,Q,L,A,E$
- If R%=0
- O=-(R%=D%)
- Else ! Ist der Ref-Wert 0 darf nicht geteilt werden
- O=D%/R%
- Endif
- If O>1.02 Or O<0.98 ! Maximale Abweichung 2%
- Pu$(A%)=A$+" "+B$+" "+Str$(Fn P(D%))+" "+Str$(Fn P(R%))+" "+E$
- Else
- Pu$(A%)=A$+" "+B$+" "+Str$(Fn P(D%))+" "+E$
- Endif
- Next A%
- If A%<&H3B
- End
- Endif
- Seek #1,521
- If Input$(4,#1)="TIME"
- Seek #1,568
- Tim$=Input$(25,#1)
- T$=N$+Tim$
- Else
- T$=N$
- Endif
- Close
- Print "Dove-Telemetrieblock-Decoder, GEM mit GFA 2.0, DD9ZK, Wetzlar 02/90"
- Print
- Print
- Rem Parameter für Window Create
- Dpoke Gc%,100
- Dpoke Gc%+2,5
- Dpoke Gc%+4,1
- Dpoke Gc%+6,0
- Dpoke Gc%+8,0
- Dpoke Gi%,451
- Dpoke Gi%+2,0
- Dpoke Gi%+4,19
- Dpoke Gi%+6,640
- Dpoke Gi%+8,372
- Gemsys
- Wh%=Dpeek(Gintout)
- Rem Windowhandle merken, weiter mit Window Open
- Dpoke Gc%,101
- Dpoke Gi%,Wh%
- Gemsys
- Rem jetzt wird die Titelzeile gesetzt
- Dpoke Gc%,105
- Dpoke Gc%+2,6
- Dpoke Gi%+2,2
- Lpoke Gi%+4,Varptr(T$)
- Gemsys
- Dpoke Gi%+2,16
- Dpoke Gi%+4,380 !relative Gröβe des Schiebers
- Gemsys
- Zn%=0
- Rem ab hier die Ausgabe-Hauptschleife
- Do
- Dpoke Gc%,23
- Dpoke Gc%+2,0
- Dpoke Gc%+4,1
- Dpoke Gc%+6,1
- Dpoke Gc%+8,0
- Lpoke Addrin,Varptr(M$)
- Gemsys
- A%=Dpeek(Varptr(M$)) !Nachrichtennummer lesen
- Exit If A%=22 ! Close angeklickt
- If A%=20
- Gosub Neu
- Endif
- If A%=24
- B%=Dpeek(Varptr(M$)+8)+1
- On B% Gosub Sup,Sdown,Zup,Zdown
- Endif
- If A%=26
- Zn%=Dpeek(Varptr(M$)+8)*37\1000
- Gosub Neu
- Endif
- Dpoke Gc%,105
- Dpoke Gc%+2,6
- Dpoke Gc%+4,1
- Dpoke Gc%+6,0
- Dpoke Gc%+8,0
- Dpoke Gi%+2,9 !Position des Schiebers setzen
- Dpoke Gi%+4,Zn%*1000\37
- Gemsys
- Loop
- Dpoke Gc%,102
- Dpoke Gc%+2,1
- Dpoke Gc%+4,1
- Dpoke Gc%+6,0
- Dpoke Gc%+8,0
- Dpoke Gi%,Wh%
- Gemsys ! Fenster schlieβen
- Dpoke Gc%,103
- Gemsys ! und abmelden
- Alert 2,"Daten ausdrucken?",2,"Ja|Nein",A%
- If A%=1
- Lprint T$
- For B%=0 To &H3A
- Lprint Pu$(B%)
- Next B%
- Endif
- End
- Procedure Neu
- Gosub Clrw
- For B%=0 To 21
- Pn%=B%+Zn%
- Py%=B%*16+51
- Text 1,Py%,Pu$(Pn%)
- Next B%
- Return
- Procedure Zdown
- If Zn%<&H3A-21
- Gosub Rasterc
- Dpoke Vi%,3
- Dpoke Pv%,1
- Dpoke Pv%+2,54
- Dpoke Pv%+4,620
- Dpoke Pv%+6,389
- Dpoke Pv%+8,1
- Dpoke Pv%+10,38
- Dpoke Pv%+12,620
- Dpoke Pv%+14,373
- Vdisys
- Dpoke Intin,0
- Dpoke Pv%+2,38
- Dpoke Pv%+6,53
- Dpoke Pv%+10,374
- Dpoke Pv%+14,389
- Vdisys
- Inc Zn%
- Pn%=Zn%+21
- Py%=387
- Text 1,Py%,Pu$(Pn%)
- Endif
- Return
- Procedure Zup
- If Zn%>0
- Gosub Rasterc
- Dpoke Intin,3
- Dpoke Pv%,1
- Dpoke Pv%+2,38
- Dpoke Pv%+4,620
- Dpoke Pv%+6,373
- Dpoke Pv%+8,1
- Dpoke Pv%+10,54
- Dpoke Pv%+12,620
- Dpoke Pv%+14,389
- Vdisys
- Dpoke Intin,0
- Dpoke Pv%+2,374
- Dpoke Pv%+6,389
- Dpoke Pv%+10,38
- Dpoke Pv%+14,53
- Vdisys
- Dec Zn%
- Py%=51
- Pn%=Zn%
- Text 1,Py%,Pu$(Pn%)
- Endif
- Return
- Procedure Sup
- Sub Zn%,22
- If Zn%<0
- Zn%=0
- Endif
- Gosub Neu
- Return
- Procedure Sdown
- Add Zn%,22
- If Zn%>&H3A-21
- Zn%=&H3A-21
- Endif
- Gosub Neu
- Return
- Procedure Clrw
- Gosub Rasterc
- Dpoke Intin,0
- Dpoke Pv%,1
- Dpoke Pv%+2,38
- Dpoke Pv%+4,620
- Dpoke Pv%+6,389
- Dpoke Pv%+8,1
- Dpoke Pv%+10,38
- Dpoke Pv%+12,620
- Dpoke Pv%+14,389
- Vdisys
- Return
- Procedure Rasterc
- Dpoke Vc%,109
- Dpoke Vc%+2,4
- Dpoke Vc%+4,0
- Dpoke Vc%+6,1
- Dpoke Vc%+8,0
- Dpoke Vc%+12,2
- Lpoke Vc%+14,Fdb%
- Lpoke Vc%+18,Fdb%
- Return
- Data &59,"Rx E/F Audio(W)",0,0.0246,0,"V(p-p)"
- Data &58,"Rx E/F Audio(N)",0,0.0246,0,"V(p-p)"
- Data &86,"Mixer Bias V: ",0,0.0102,0,"Volts"
- Data &32,"Osc. Bisd V: ",0,0.0102,0,"Volts "
- Data &57,"Rx A Audio (W):",0,0.0246,0,"V(p-p)"
- Data &58,"Rx A Audio (N):",0,0.0246,0,"V(p-p)"
- Data &6E,"Rx A DISC: ",0,-0.09274,10.427,"kHz"
- Data &40,"Rx A S meter: ",0,1,0,"Counts"
- Data &6C,"Rx E/F DISC: ",0,-0.09911,9.6234,"kHz"
- Data &62,"Rx E/F S meter:",0,1,0,"Counts"
- Data &A2,"+5 Volt Bus: ",0,0.0305,0,"Volts"
- Data &DC,"+5V Rx Current:",0,0.0001,0,"Amps"
- Data &E7,"+2.5V VREF: ",0,0.0108,0,"Volts"
- Data &D7,"8.5V BUS: ",0,0.0391,0,"Volts"
- Data &00,"IR Detector: ",0,1,0,"Counts"
- Data &24,"LO Monitor I: ",0,0.000037,0,"Amps"
- Data &CC,"+10V Bus: ",0,0.05075,0,"Volts"
- Data &A4,"GASFET Bias I: ",0,0.000026,0,"Amps"
- Data &00,"Ground REF: ",0,0.01,0,"Volts"
- Data &01,"+Z Array V: ",0,0.1023,0,"Volts"
- Data &AE,"Rx Temp: ",0,-0.6051,101.05,"Deg. C"
- Data &9C,"+X (RX) temp: ",0,-0.6051,101.05,"Deg. C"
- Data &99,"Bat 1 V: ",0,-0.0034084,1.7932,"Volts"
- Data &93,"Bat 2 V: ",0,-0.0035316,1.7978,"Volts"
- Data &94,"Bat 3 V: ",0,-0.0035723,1.8046,"Volts"
- Data &94,"Bat 4 V: ",0,-0.003459,1.7782,"Volts"
- Data &92,"Bat 5 V: ",0,-0.0038355,1.841,"Volts"
- Data &8B,"Bat 6 V: ",0,-0.003845,1.8381,"Volts"
- Data &9A,"Bat 7 V: ",0,-0.0037757,1.8568,"Volts"
- Data &96,"Bat 8 V: ",0,-0.0034068,1.7868,"Volts"
- Data &24,"Array V: ",0,0.072,7.205,"Volts"
- Data &5E,"+5V Bus: ",0,0.0312,1.932,"Volts"
- Data &BD,"+8.5V Bus: ",0,0.0173,5.265,"Volts"
- Data &9A,"+10V Bus: ",0,0.021765,7.469,"Volts"
- Data &76,"BCR Set Point: ",0,1.159,-8.762,"Counts"
- Data &1F,"BCR Load Cur: ",0,0.00698,-0.0871,"Amps"
- Data &1F,"+8.5V Bus Cur: ",0,0.001899,-0.0092,"Amps"
- Data &2E,"+5V Bus Cur: ",0,0.00431,0.00502,"Amps"
- Data &00,"-X Array Cur: ",0,0.00215,-0.01075,"Amps"
- Data &00,"+X Array Cur: ",0,0.0027,-0.01349,"Amps"
- Data &01,"-Y Array Cur: ",0,0.00239,-0.01196,"Amps"
- Data &00,"+Y Array Cur: ",0,0.00228,-0.01141,"Amps"
- Data &00,"-Z Array Cur: ",0,0.00245,-0.01653,"Amps"
- Data &00,"+Z Array Cur: ",0,0.00228,-0.01137,"Amps"
- Data &00,"Ext Power Cur: ",0,0.0025,-0.02,"Amps"
- Data &2A,"BCR Input Cur: ",0,0.00317,0.06122,"Amps"
- Data &00,"BCR Output Cur:",0,0.00345,-0.01724,"Amps"
- Data &9C,"Bat 1 Temp: ",0,-0.6051,101.05,"Deg. C"
- Data &C9,"Bat 2 Temp: ",0,-0.6051,101.05,"Deg. C"
- Data &9C,"Baseplt Temp: ",0,-0.6051,101.05,"Deg. C"
- Data &11,"FM TX#1 RF OUT:",0.0000836,-0.000884,0.0256,"Watts"
- Data &C7,"FM TX#2 RF OUT:",0.000073,0.001257,-0.0027,"Watts"
- Data &C2,"PSK TX HPA Temp",0,-0.6051,101.05,"Deg. C"
- Data &96,"+Y Array Temp: ",0,-0.6051,101.05,"Deg. C"
- Data &A5,"RC PSK HPA Temp",0,-0.6051,101.05,"Deg. C"
- Data &A3,"RC PSK BP Temp:",0,-0.6051,101.05,"Deg. C"
- Data &B8,"+Z Array Temp: ",0,-0.6051,101.05,"Deg. C "
- Data &99,"S band TX Out: ",0,0.00403,-0.0451,"Watts"
- Data &01,"S band HPA Temp",0,-0.6051,101.05,"Deg. C"
-
-